package cc.liyinghao.springsecuritydemo.controller;

import io.swagger.annotations.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * 白名单接口
 */
@RestController
@RequiredArgsConstructor
public class HelloController {

    @GetMapping("/test")
    public String test() {
        return "测试";
    }

    @GetMapping("/hello")
    public String hello() {
        return "这是白名单接口，无需登录，无需账号状态，所有人都可以访问";
    }

    @GetMapping("hello_Login")
    public String helloLogin() {
        return "这是登录后才能访问的接口,不需要任何角色或权限";
    }

    @GetMapping("hello_User")
    @PreAuthorize("hasRole('user')")
    public String helloUser() {
        return "这是需要用户角色才能访问的接口";
    }

    @GetMapping("/hello_admin")
    @PreAuthorize("hasRole('admin')")
    public String admin() {
        return "这是管理员接口，你是管理员，可以访问";
    }
}
